package com.xyyl.patient.service.doctor;

import java.util.List;
import java.util.Map;

import com.xyyl.patient.core.support.Pager;
import com.xyyl.patient.entity.doctor.Disease;
import com.xyyl.patient.entity.doctor.Doctor;
import com.xyyl.patient.entity.doctor.DoctorPatientRelation;
import com.xyyl.patient.entity.question.DoctorEvaluate;

/**
 * @ClassName: UserService
 * @Description:  
 * @author chengjun
 * @date 2017年8月17日
 *
 */
public interface DoctorService  {
	
	public List<Doctor> getDoctor(Pager pager);

	public List<Map<String,Object>> getHosp();

	public List<Map<String,Object>> getDept(Integer hospitalid);

	public String  getDoctorIMEI(Integer doctorId);

	public List<Disease> getDisease();

	public Doctor getDoctorById(Integer doctorId);

	public Doctor getDoctorinfo(Integer doctorId);

	public List<Disease> getDiseaseByDoctorId(Integer doctorId);

	public List<DoctorEvaluate> getDoctorEvaluate(Pager pager);

	/**
	 * @Title: saveDoctorEvaluate
	 * @Description:医生评价
	 * @param @param DoctorEvaluate
	 * @param @return    参数
	 * @return Integer    返回类型
	 * @throws
	 */
	public Integer saveDoctorEvaluate(DoctorEvaluate doctorEvaluate);


	/**
	 * @Title: addDoctorFriends
	 * @Description:详情
	 * @param @param doctorPatientRelation
	 * @param @return    参数
	 * @return UserVo    返回类型
	 * @throws
	 */
	public Integer addDoctorFriends(DoctorPatientRelation doctorPatientRelation);

	public DoctorPatientRelation getDoctorFriends(DoctorPatientRelation doctorPatientRelation);

	public Integer deleteIM(Integer userId);
	
	public List<Map<String,Object>> getBookTimeByDoctorId(Integer doctorid);
	
	/**
	 * @Title: getDoctordeviceTokensById
	 * @Description: 返回医生设备ID
	 * @param @param doctorId
	 * @param @return    参数
	 * @return String    返回类型
	 * @throws
	 */
	public String getDoctorDeviceTokensById(Integer doctorId);
	
	/**
	 * @Title: queryDoctorListOfSpeedPhoneOrder
	 * @Description: 查询开通极速电话的医生信息
	 * @param @return    参数
	 * @return List<Doctor>    返回类型
	 * @throws
	 */
	List<Doctor> queryDoctorListOfSpeedPhoneOrder();
	
	/**
	 * 删除患者和医生的关系
	 * @param id
	 * @return
	 */
	public Integer deleteByID(Integer id);
	
	/**
	 * 删除聊天记录
	 * @param doctorPatientRelation
	 */
	public void deleteIMByParameter(DoctorPatientRelation doctorPatientRelation);
	/**
	 *  通过患者ID 删除聊天记录
	 * @param patientid
	 */
	public void deleteIMByPatientid(Map<String, Object> map);
	
	public void deleteDPRByPatientid(Map<String, Object> map);
	/**
	 * 添加好友.并删除以前的好友关系
	 * @param map
	 * @param doctorPatientRelation
	 * @return
	 */
	public Integer saveAndDelete(Map<String, Object> map, DoctorPatientRelation doctorPatientRelation);
	/**
	 *  判断是否已关注
	 * @param map
	 * @return
	 */
	public Integer getFollow(Map<String, Object> map);
	/**
	 * 关注医生
	 * @param map
	 * @return
	 */
	public Integer saveFollow(Map<String, Object> map);
	/**
	 * 取消关注
	 * @param map
	 * @return
	 */
	public Integer deleteFollow(Integer id);
	/**
	 * 我的医生
	 * @param patientid
	 * @return
	 */
	public List<Doctor> followDoctorList(Integer patientid);
	/**
	 * 更新医生关注量
	 * @param doctor
	 */
	public void updateDoctorConcern(Integer docotrid,Integer count);

	/**
	 * 根据医生id获取对应的手机号码
	 * @param doctorid
	 */
	public String queryDoctorMoblieById(Integer doctorid);

	public List<DoctorEvaluate> getMyEvaluate(Integer patientid);
	
	
}
